﻿namespace MicroCloud.Systems
{
    /// <summary>
    /// 键值数据接口
    /// </summary>
    public interface IKeyValue
    {
        #region 属性        
        /// <summary>
        /// 获取或设置 数据键
        /// </summary>
        string Key { get; set; }

        /// <summary>
        /// 获取或设置 数据值
        /// </summary>
        object Value { get; set; }

        /// <summary>
        /// 获取或设置 显示名称
        /// </summary>
        string Display { get; set; }

        /// <summary>
        /// 获取或设置 备注
        /// </summary>
        string Remark { get; set; }

        /// <summary>
        /// 获取或设置 顺序编号
        /// </summary>
        decimal OrderNo { get; set; }

        /// <summary>
        /// 获取或设置 是否锁定
        /// </summary>
        bool IsLocked { get; set; }

        #endregion

        #region 方法        
        /// <summary>
        /// 获取强类型数据值
        /// </summary>
        /// <typeparam name="T">要转换的目标类型</typeparam>
        /// <returns>目标类型值</returns>
        T GetValue<T>();

        #endregion

    }
}